package com.mtt.erp.goods.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mtt.erp.common.domain.QueryRequest;
import com.mtt.erp.common.exception.MttErpException;
import com.mtt.erp.goods.domain.MaaFile;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mtt.erp.goods.dto.*;
import com.mtt.erp.goods.vo.GoodsVo;

/**
 * @author MrBird
 */
public interface IMaaFileService extends IService<MaaFile> {

    /**
     * 分页查询：查询全部商品
     * @param request
     * @param maaDto
     * @return
     */
    IPage<MaaPageDto> findMaa(QueryRequest request, MaaDto maaDto);

    /**
     * 新增商品
     * @param dto
     * @return
     * @throws MttErpException
     */
    Boolean createMaa(MaaCreateDto dto) throws MttErpException;

    /**
     * 修改商品
     * @param dto
     * @return
     * @throws MttErpException
     */
    Boolean updateMaa(MaaUpdateDto dto) throws MttErpException;

    /**
     * 查找商品中的文件
     * @param maaFile
     * @return
     */
    GoodsVo findFiles(MaaFile maaFile);

    /**
     * 修改前初始化
     * @param id
     * @return
     */
    GoodsVo beforeEditInit(String id);

    /**
     * 上架
     * @param maaIds
     * @return
     * @throws MttErpException
     */
    Boolean putAway(String[] maaIds) throws MttErpException;

    /**
     * 下架
     * @param maaIds
     * @return
     * @throws MttErpException
     */
    Boolean soldOut(String[] maaIds) throws MttErpException;

    /**
     * SKU唯一校验
     * @param maa01
     * @return
     */
    MaaFile getBymaa01(String maa01);

    /**
     * 获取SKU
     * @return
     */
    String getSKU();
}



